package com.javaee.shortlink.admin.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.javaee.shortlink.admin.dao.entity.GroupDO;
import com.javaee.shortlink.admin.dto.req.GroupSortReqDTO;
import com.javaee.shortlink.admin.dto.req.GroupUpdateReqDTO;
import com.javaee.shortlink.admin.dto.resp.GroupRespDTO;

import java.util.List;

/**
 * 短链接分组接口层
 */
public interface GroupService extends IService<GroupDO> {

    /**
     * 新增短链接分组
     * @param groupName 短链接分组名称
     */
    void saveGroup(String groupName);

    /**
     * 新增短链接分组
     * @param username 用户名
     * @param groupName 短链接分组名称
     */
    void saveGroup(String username,String groupName);

    /**
     * 返回当前用户的所有短链接分组
     * @return 当前用户的所有短链接分组
     */
    List<GroupRespDTO> listGroup();

    /**
     * 修改分组名称
     * @param groupUpdateReqDTO 短链接分组修改请求参数类
     */
    void updateGroup(GroupUpdateReqDTO groupUpdateReqDTO);

    /**
     * 删除短链接分组
     * @param groupId 短链接分组gid
     */
    void deleteGroup(String groupId);

    /**
     * 短链接分组排序
     * @param list gid表
     */
    void sortGroup(List<GroupSortReqDTO> list);
}
